Technical Field
The present technique relates to the field of integrated circuits. More particularly it relates to coherency control for an interconnect for connecting devices in an integrated circuit.
Technical Background
An integrated circuit may include several devices which may each hold cached copies of data from memory. As several devices may hold data from the same address, it can be important that coherency is maintained between the different versions of the data so that when one device updates data, another device is not still using an old version. An interconnect may manage coherency of data used by a number of devices connected to it.
One way of maintaining coherency is to use a snoop-based mechanism where, when the interconnect receives a read or write transaction from one device for a given address, the interconnect issues snoop transactions to other devices to determine whether another device has cached data from that address. However, as the number of devices increases, snooping all devices to find out whether they have cached data becomes expensive since the snoop traffic increasingly dominates the interconnect bandwidth.
One way of reducing the amount of snoop traffic is to provide a snoop filter which stores data tracking at least some of the data cached by the devices. This allows the interconnect to issue snoop transactions only to those devices identified by the snoop filter as storing the cached data. The present technique seeks to reduce the circuit overhead and improve performance of a system using a snoop filter.